1. Field of the Invention
The present invention relates to interoperability between IPv4 networks and IPv6 networks. In particular, the present invention relates to enabling an IPv4 node to access a wide area public IPv4 network (e.g., the Internet), via an IPv6 access network providing network access to the public IPv4 network via a Network Address Translator (NAT) or a Port Address Translator (PAT).
2. Description of the Related Art
Proposals are underway by the Next Generation Transition (NGTRANS) Working Group of the Internet Engineering Task Force (IETF) to enable network nodes to transmit IP packets, generated according to IPv6 protocol as specified by the Request for Comments (RFC) 2460, across an IPv4 network. In particular, RFC 3056 proposes an interim solution (referred to herein as “the 6to4 proposal”) of sending IPv6 packets as payload for IPv4 packets, where an interim unique IPv6 address prefix is assigned to any node that has at least one globally unique IPv4 address. These RFCs are available on the World Wide Web at the IETF website (“www.ietf.org”).
The 6to4 proposal specifies that an IPv6 node has an IPv6 address that contains an assigned IPv4 address, resulting in an automatic mapping between the IPv6 and IPv4 addresses. Hence, the IPv6 node can easily encapsulate the IPv6 packet with an IPv4 header based on extracting the assigned IPv4 address from within its IPv6 address.
Concerns arise in the event that an IPv6 node is coupled to a private IPv4 network having a Network Address Translator (NAT). NATs perform a Layer-3 translation of IP-Addresses, so that public Internet addresses map to private IP addresses, as described in detail by the Request for Comments 1918 (RFC 1918). This mapping has allowed enterprises to map a large number of private addresses to a limited number of public addresses, thus limiting the number of public addresses required by Internet users.
As described in RFC 3056, however, if an IPv6 node is coupled to an IPv4 network having a NAT, then the NAT box “must also contain a fully functional IPv6 router including the 6to4 mechanism” in order for the 6to4 proposal to still be operable in the IPv4 network having the NAT. However, the modification of existing NATs to include IPv6 routers to include the 6to4 mechanism may not be a practical solution.
Further, the IPv4 addresses of the 6to4 protocol are assumed to be global public addresses. Hence, if an IPv6 node (i.e., a correspondent node) wants to communicate with a roaming mobile IPv6 node, the 6to4 address of the roaming mobile IPv6 node must be a global public address, not a private address.
Another NAT-based proposal for enabling IPv4 hosts in an IPv4 network to access IPv6 hosts in an IPv6 network is described in RFC 2766, entitled “Network Address Translation—Protocol Translation (NAT-PT). The NAT-PT provides a combination of network address translation and protocol translation based on a pool of IPv4 addresses for assignment to IPv6 nodes on a dynamic basis as sessions are initiated across IPv4- IPv6 boundaries. However, the description of the NAT-PT in the RFC 2766 assumes that IPv4 addresses are unique.
A particular issue identified by the inventors involves deployment of IPv6 access networks in areas or countries that to date have not deployed an IPv4 network. In particular, developing countries that to date have lacked any large-scale networking infrastructure are beginning deployment of new Internet Protocol based networks using IPv6 protocol instead of the more traditional IPv4 protocol.
However, problems arise if an end user, having an IPv4 node, attempts to access the IPv4-based Internet via the IPv6 network. Hence, concerns arise that users of an IPv6 access network will not have any connectivity to the existing Internet infrastructure because the existing Internet infrastructure has been implemented according to IPv4 protocol.
To date the only known method of enabling an IPv4 host to access the IPv4-based Internet via an IPv6 network has been to establish an IPv6 tunnel between the IPv4-IPv6 boundaries, namely the first IPv4-IPv6 boundary between the IPv4 host and the IPv6 access network, and the second IPv4-IPv6 boundary between the IPv6 access network and the wide area IPv4 network. However, establishing an IPv6 tunnel between the IPv4-IPv6 boundaries requires IPv6 encapsulation, which in certain applications (e.g., Voice over IP) may almost double the size of the packet, creating bandwidth problems.